package com.rw.coco.api.data.persistence.simple;

import com.rw.coco.api.data.model.ObModel;
import com.rw.coco.api.data.persistence.ObMapper;

import java.util.List;

/**
 * 简单实现SimpleObMapper类
 * 注意，如果实现这个类，则不保证调用原子性
 */
public abstract class SimpleObMapper implements ObMapper, BaseSimpleMapper<ObModel> {
    /**
     * 进入群旁观
     *
     * @param groupId 进入群旁观的群号
     * @param userId  进入群旁观的用户ID
     */
    @Override
    public void obGroup(String groupId, String userId) {
        ObModel insertModel = new ObModel();
        insertModel.setAccountId(userId);
        insertModel.setGroupId(groupId);
        insert(insertModel);
    }

    /**
     * 获得群旁观列表
     *
     * @param groupId 群ID
     * @return 群旁观列表
     */
    @Override
    public List<ObModel> getGroupObList(String groupId) {
        ObModel select = new ObModel();
        select.setGroupId(groupId);
        return selectList(select);
    }

    /**
     * 退出群旁观
     *
     * @param groupId 群ID
     * @param userId  退出的用户ID
     */
    @Override
    public void exitGroupObList(String groupId, String userId) {
        ObModel deleteModel = new ObModel();
        deleteModel.setGroupId(groupId);
        deleteModel.setAccountId(userId);
        deleteAll(deleteModel);
    }

    /**
     * 清空群旁观列表
     *
     * @param groupId 群ID
     */
    @Override
    public void clearGroupObList(String groupId) {
        ObModel deleteModel = new ObModel();
        deleteModel.setGroupId(groupId);
        deleteAll(deleteModel);
    }
}
